home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_jvm13.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  38.4 KB  |  1,267 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9. void r873make(T873* C,T0* a1,T0* a2){
  10. C->_start_position=a1;
  11. C->_to_string=r902item(a2);
  12. }
  13. /*No:ARGUMENT_NAME1.to_string*/
  14. /*No:ARGUMENT_NAME1.compile_to_jvm_assignment*/
  15. /*No:ARGUMENT_NAME1.fz_iinaiv*/
  16. int r873jvm_branch_if_true(T873* C){
  17. int R=0;
  18. r873compile_to_jvm(C);
  19. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  20. return R;
  21. }
  22. /*No:ARGUMENT_NAME1.set_result_type*/
  23. /*No:ARGUMENT_NAME1.start_position*/
  24. /*No:ARGUMENT_NAME1.compile_to_jvm_old*/
  25. /*No:ARGUMENT_NAME1.set_rank*/
  26. T0* r873to_runnable(T873* C,T0* a1){
  27. T0* R=NULL;
  28. T0* _t2=NULL;
  29. T0* _t1=NULL;
  30. _t1=(((T873*)C))->_result_type/*24*/;
  31. _t2=X291to_runnable(_t1,a1);
  32. /*IF*/if ((_t2)==((void*)(NULL))) {
  33. r683add_position(X291start_position(_t1));
  34. r873error((((T873*)C))->_start_position/*16*/,((T0*)ms5_361));
  35. }
  36. /*FI*//*IF*/if (((((T873*)C))->_current_type/*8*/)==((void*)(NULL))) {
  37. C->_current_type=a1;
  38. C->_result_type=_t2;
  39. R=(T0*)C;
  40. }
  41. else {
  42. {T873*n=malloc(sizeof(*n));
  43. *n=M873;
  44. r873make_runnable(n,(T0*)C,a1,_t2);
  45. R=(T0*)n;
  46. }
  47. }
  48. /*FI*/return R;
  49. }
  50. /*No:ARGUMENT_NAME1.rank*/
  51. /*No:ARGUMENT_NAME1.result_type*/
  52. /*No:ARGUMENT_NAME1.is_result*/
  53. /*No:ARGUMENT_NAME1.is_static*/
  54. void r873standard_compile_target_to_jvm(T873* C){
  55. r873compile_to_jvm(C);
  56. X291jvm_check_class_invariant((((T873*)C))->_result_type/*24*/);
  57. }
  58. int r873compile_to_jvm_into(T873* C,T0* a1){
  59. int R=0;
  60. R=r873standard_compile_to_jvm_into(C,a1);
  61. return R;
  62. }
  63. /*No:ARGUMENT_NAME1.compile_target_to_jvm*/
  64. T0* r873base_class_written(T873* C){
  65. T0* R=NULL;
  66. R=r451base_class(((T451*)(r873written_in(C))));
  67. return R;
  68. }
  69. /*No:ARGUMENT_NAME1.can_be_dropped*/
  70. /*No:ARGUMENT_NAME1.current_type*/
  71. /*No:ARGUMENT_NAME1.jvm_assign*/
  72. /*No:ARGUMENT_NAME1.static_value_mem*/
  73. /*No:ARGUMENT_NAME1.is_manifest_string*/
  74. /*No:ARGUMENT_NAME1.is_void*/
  75. void r873compile_to_jvm(T873* C){
  76. int _jvm_offset=0;
  77. _jvm_offset=r228argument_offset_of(((T228*)(oBC364jvm)),(T0*)C);
  78. X291jvm_push_local(X291run_type((((T873*)C))->_result_type/*24*/),_jvm_offset);
  79. }
  80. /*No:ARGUMENT_NAME1.is_pre_computable*/
  81. /*No:ARGUMENT_NAME1.use_current*/
  82. void r873error(T0* a1,T0* a2){
  83. r683add_position(a1);
  84. r683error(((T683*)(oBC364eh)),a2);
  85. }
  86. /*No:ARGUMENT_NAME1.isa_dca_inline_argument*/
  87. int r873standard_compile_to_jvm_into(T873* C,T0* a1){
  88. int R=0;
  89. r873compile_to_jvm(C);
  90. R=X291jvm_convert_to(X291run_type((((T873*)C))->_result_type/*24*/),a1);
  91. return R;
  92. }
  93. /*No:ARGUMENT_NAME1.em_ba*/
  94. /*No:ARGUMENT_NAME1.afd_check*/
  95. void r873make_runnable(T873* C,T0* a1,T0* a2,T0* a3){
  96. *((T873*)(C))=*((T873*)(a1));
  97. C->_current_type=a2;
  98. C->_result_type=a3;
  99. }
  100. T0* r292add_comment(T292* C,T0* a1){
  101. T0* R=NULL;
  102. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  103. R=(T0*)C;
  104. }
  105.  else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
  106. R=(T0*)C;
  107. }
  108. else {
  109. {T46*n=malloc(sizeof(*n));
  110. *n=M46;
  111. r46make(n,(T0*)C,a1);
  112. R=(T0*)n;
  113. }
  114. }
  115. /*FI*/}
  116. /*FI*/return R;
  117. }
  118. void r292make(T292* C,T0* a1,T0* a2,T0* a3){
  119. {T623*n=malloc(sizeof(*n));
  120. *n=M623;
  121. r623make(n,a1,a2,a3);
  122. C->_check_invariant=(T0*)n;
  123. }
  124. }
  125. /*No:E_CHECK.start_position*/
  126. T0* r292to_runnable(T292* C,T0* a1){
  127. T0* R=NULL;
  128. T0* _al=NULL;
  129. /*IF*/if (((((T292*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  130. C->_run_compound=a1;
  131. /*IF*/if (r590all_check(((T590*)(oBC364run_control)))) {
  132. _al=r623to_runnable(((T623*)((((T292*)C))->_check_invariant/*8*/)),(((T592*)((T592*)a1)))->_current_type/*4*/);
  133. /*IF*/if ((_al)==((void*)(NULL))) {
  134. r292error(/*(IRF4.6start_position*/(((T623*)((T623*)((((T292*)C))->_check_invariant/*8*/))))->_start_position/*0*//*)*/,((T0*)ms1_292));
  135. }
  136. else {
  137. C->_check_invariant=_al;
  138. R=(T0*)C;
  139. }
  140. /*FI*/}
  141. else {
  142. R=(T0*)C;
  143. }
  144. /*FI*/}
  145. else {
  146. {T292*n=malloc(sizeof(*n));
  147. *n=M292;
  148. r292make(n,/*(IRF4.6start_position*/(((T623*)((T623*)((((T292*)C))->_check_invariant/*8*/))))->_start_position/*0*//*)*/,NULL,(((T623*)((T623*)((((T292*)C))->_check_invariant/*8*/))))->_list/*8*/);
  149. R=(T0*)n;
  150. }
  151. R=r292to_runnable(((T292*)R),a1);
  152. }
  153. /*FI*/return R;
  154. }
  155. /*No:E_CHECK.check_invariant*/
  156. /*No:E_CHECK.run_compound*/
  157. void r292compile_to_jvm(T292* C){
  158. /*IF*/if (r590all_check(((T590*)(oBC364run_control)))) {
  159. r623compile_to_jvm(((T623*)((((T292*)C))->_check_invariant/*8*/)),1);
  160. }
  161. /*FI*/}
  162. int r292is_pre_computable(T292* C){
  163. int R=0;
  164. /*IF*/if (r590all_check(((T590*)(oBC364run_control)))) {
  165. R=r623is_pre_computable(((T623*)((((T292*)C))->_check_invariant/*8*/)));
  166. }
  167. else {
  168. R=1;
  169. }
  170. /*FI*/return R;
  171. }
  172. int r292use_current(T292* C){
  173. int R=0;
  174. /*IF*/if (r590all_check(((T590*)(oBC364run_control)))) {
  175. R=r623use_current(((T623*)((((T292*)C))->_check_invariant/*8*/)));
  176. }
  177. /*FI*/return R;
  178. }
  179. void r292error(T0* a1,T0* a2){
  180. r683add_position(a1);
  181. r683error(((T683*)(oBC364eh)),a2);
  182. }
  183. /*No:E_CHECK.end_mark_comment*/
  184. void r292afd_check(T292* C){
  185. /*IF*/if (r590all_check(((T590*)(oBC364run_control)))) {
  186. r623afd_check(((T623*)((((T292*)C))->_check_invariant/*8*/)));
  187. }
  188. /*FI*/}
  189. /*No:UNIQUE_STRING.us_put*/
  190. /*No:UNIQUE_STRING.us_character_bits*/
  191. /*No:UNIQUE_STRING.us_none*/
  192. /*No:UNIQUE_STRING.us_dictionary*/
  193. /*No:UNIQUE_STRING.us_minimum_integer*/
  194. /*No:UNIQUE_STRING.us_character_ref*/
  195. /*No:UNIQUE_STRING.us_integer*/
  196. /*No:UNIQUE_STRING.us_copy*/
  197. /*No:UNIQUE_STRING.us_generator*/
  198. /*No:UNIQUE_STRING.us_minimum_character_code*/
  199. /*No:UNIQUE_STRING.us_maximum_integer*/
  200. /*No:UNIQUE_STRING.us_standard_copy*/
  201. /*No:UNIQUE_STRING.us_maximum_character_code*/
  202. /*No:UNIQUE_STRING.us_minimum_real*/
  203. /*No:UNIQUE_STRING.us_sprintf_double*/
  204. /*No:UNIQUE_STRING.us_with_capacity*/
  205. void r902key_pfx_ifx(T0* a1){
  206. char _c=0;
  207. int _i=0;
  208. _i=1;
  209. while (!((_i)>((((T7*)((T7*)a1)))->_count/*4*/))) {
  210. _c=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  211. /*IF*/if (r3is_letter(_c)) {
  212. r7extend(((T7*)(oBC902pfx_ifx)),_c);
  213. }
  214. else {
  215. r2append_in(((unsigned char)_c),oBC902pfx_ifx);
  216. }
  217. /*FI*/_i=(_i)+(1);
  218. }
  219. }
  220. /*No:UNIQUE_STRING.us_backslash_backslash*/
  221. /*No:UNIQUE_STRING.us_compile_to_jvm*/
  222. /*No:UNIQUE_STRING.us_maximum_real*/
  223. /*No:UNIQUE_STRING.us_conforms_to*/
  224. /*No:UNIQUE_STRING.us_and*/
  225. /*No:UNIQUE_STRING.us_print*/
  226. /*No:UNIQUE_STRING.us_print_on*/
  227. /*No:UNIQUE_STRING.us_double_ref*/
  228. /*No:UNIQUE_STRING.us_and_then*/
  229. /*No:UNIQUE_STRING.us_put_0*/
  230. /*No:UNIQUE_STRING.us_array*/
  231. /*No:UNIQUE_STRING.us_from_pointer*/
  232. /*No:UNIQUE_STRING.us_lower*/
  233. /*No:UNIQUE_STRING.us_std_neq*/
  234. /*No:UNIQUE_STRING.us_pointer_bits*/
  235. /*No:UNIQUE_STRING.us_slash_slash*/
  236. /*No:UNIQUE_STRING.us_double_floor*/
  237. /*No:UNIQUE_STRING.us_integer_bits*/
  238. /*No:UNIQUE_STRING.us_stdout*/
  239. /*No:UNIQUE_STRING.us_capacity*/
  240. /*No:UNIQUE_STRING.us_put_1*/
  241. /*No:UNIQUE_STRING.make*/
  242. /*No:UNIQUE_STRING.us_current*/
  243. /*No:UNIQUE_STRING.us_item*/
  244. T0* r902read(T0* a1){
  245. T0* R=NULL;
  246. R=r794at(((T794*)(oBC902memory)),a1);
  247. return R;
  248. }
  249. /*No:UNIQUE_STRING.us_pointer*/
  250. /*No:UNIQUE_STRING.us_string*/
  251. /*No:UNIQUE_STRING.us_se_remove*/
  252. /*No:UNIQUE_STRING.us_flush_stream*/
  253. /*No:UNIQUE_STRING.us_realloc*/
  254. /*No:UNIQUE_STRING.us_like_current*/
  255. /*No:UNIQUE_STRING.us_floor*/
  256. /*No:UNIQUE_STRING.us_double_bits*/
  257. /*No:UNIQUE_STRING.us_or_else*/
  258. /*No:UNIQUE_STRING.us_blank*/
  259. /*No:UNIQUE_STRING.us_is_expanded_type*/
  260. /*No:UNIQUE_STRING.us_std_output*/
  261. /*No:UNIQUE_STRING.us_fclose*/
  262. T0* r902item(T0* a1){
  263. T0* R=NULL;
  264. r902initialize();
  265. /*IF*/if (r794has(((T794*)(oBC902memory)),a1)) {
  266. R=r902read(a1);
  267. }
  268. else {
  269. R=r7twin(((T7*)a1));
  270. r902add1(R);
  271. }
  272. /*FI*/return R;
  273. }
  274. /*No:UNIQUE_STRING.us_ge*/
  275. /*No:UNIQUE_STRING.us_neq*/
  276. /*No:UNIQUE_STRING.us_stdin*/
  277. /*No:UNIQUE_STRING.us_slash*/
  278. /*No:UNIQUE_STRING.us_compile_to_c*/
  279. /*No:UNIQUE_STRING.us_crash*/
  280. /*No:UNIQUE_STRING.us_c_inline_c*/
  281. /*No:UNIQUE_STRING.us_standard_twin*/
  282. /*No:UNIQUE_STRING.us_truncated_to_integer*/
  283. /*No:UNIQUE_STRING.us_write_byte*/
  284. /*No:UNIQUE_STRING.us_stderr*/
  285. /*No:UNIQUE_STRING.us_se_system*/
  286. /*No:UNIQUE_STRING.us_std_file_read*/
  287. /*No:UNIQUE_STRING.us_sfr_open*/
  288. /*No:UNIQUE_STRING.us_sfw_open*/
  289. /*No:UNIQUE_STRING.us_character*/
  290. /*No:UNIQUE_STRING.us_pointer_ref*/
  291. /*No:UNIQUE_STRING.us_shift_left*/
  292. /*No:UNIQUE_STRING.us_std_error*/
  293. T0*oBC902pfx_ifx=NULL;
  294. /*No:UNIQUE_STRING.us_le*/
  295. /*No:UNIQUE_STRING.us_make*/
  296. /*No:UNIQUE_STRING.us_integer_ref*/
  297. /*No:UNIQUE_STRING.us_bitn*/
  298. /*No:UNIQUE_STRING.us_twin*/
  299. /*No:UNIQUE_STRING.us_bit_n*/
  300. /*No:UNIQUE_STRING.us_real*/
  301. /*No:UNIQUE_STRING.us_die_with_code*/
  302. /*No:UNIQUE_STRING.us_implies*/
  303. /*No:UNIQUE_STRING.us_result*/
  304. /*No:UNIQUE_STRING.us_generating_type*/
  305. /*No:UNIQUE_STRING.us_is_basic_expanded_type*/
  306. T0* r902for_prefix(T0* a1){
  307. T0* R=NULL;
  308. r7copy(((T7*)(oBC902pfx_ifx)),((T0*)ms1_902));
  309. r902key_pfx_ifx(a1);
  310. R=r902item(oBC902pfx_ifx);
  311. return R;
  312. }
  313. T0* r902for_infix(T0* a1){
  314. T0* R=NULL;
  315. r7copy(((T7*)(oBC902pfx_ifx)),((T0*)ms2_902));
  316. r902key_pfx_ifx(a1);
  317. R=r902item(oBC902pfx_ifx);
  318. return R;
  319. }
  320. /*No:UNIQUE_STRING.us_bit*/
  321. /*No:UNIQUE_STRING.us_minus*/
  322. /*No:UNIQUE_STRING.us_shift_right*/
  323. /*No:UNIQUE_STRING.us_count*/
  324. /*No:UNIQUE_STRING.us_se_argc*/
  325. /*No:UNIQUE_STRING.us_storage*/
  326. /*No:UNIQUE_STRING.us_object_size*/
  327. /*No:UNIQUE_STRING.us_se_rename*/
  328. /*No:UNIQUE_STRING.us_memory*/
  329. /*No:UNIQUE_STRING.us_code*/
  330. /*No:UNIQUE_STRING.us_sprintf_pointer*/
  331. /*No:UNIQUE_STRING.us_standard_is_equal*/
  332. /*No:UNIQUE_STRING.us_real_ref*/
  333. /*No:UNIQUE_STRING.us_boolean*/
  334. /*No:UNIQUE_STRING.us_is_not_void*/
  335. /*No:UNIQUE_STRING.us_at*/
  336. /*No:UNIQUE_STRING.us_eq*/
  337. /*No:UNIQUE_STRING.us_double*/
  338. /*No:UNIQUE_STRING.us_pointer_size*/
  339. /*No:UNIQUE_STRING.us_to_double*/
  340. /*No:UNIQUE_STRING.us_xor*/
  341. /*No:UNIQUE_STRING.us_io*/
  342. /*No:UNIQUE_STRING.us_platform*/
  343. /*No:UNIQUE_STRING.us_is_equal*/
  344. /*No:UNIQUE_STRING.us_to_bit*/
  345. /*No:UNIQUE_STRING.us_bit_n_ref*/
  346. /*No:UNIQUE_STRING.us_to_character*/
  347. /*No:UNIQUE_STRING.us_se_string2double*/
  348. /*No:UNIQUE_STRING.us_free*/
  349. /*No:UNIQUE_STRING.us_read_byte*/
  350. /*No:UNIQUE_STRING.us_not*/
  351. /*No:UNIQUE_STRING.us_void*/
  352. /*No:UNIQUE_STRING.us_muls*/
  353. /*No:UNIQUE_STRING.us_trace_switch*/
  354. /*No:UNIQUE_STRING.us_feof*/
  355. /*No:UNIQUE_STRING.us_boolean_bits*/
  356. /*No:UNIQUE_STRING.us_gt*/
  357. /*No:UNIQUE_STRING.us_se_getenv*/
  358. /*No:UNIQUE_STRING.us_to_integer*/
  359. /*No:UNIQUE_STRING.us_native_array_character*/
  360. /*No:UNIQUE_STRING.us_calloc*/
  361. /*No:UNIQUE_STRING.us_to_pointer*/
  362. /*No:UNIQUE_STRING.us_clear_all*/
  363. /*No:UNIQUE_STRING.us_real_bits*/
  364. /*No:UNIQUE_STRING.us_plus*/
  365. /*No:UNIQUE_STRING.us_boolean_ref*/
  366. /*No:UNIQUE_STRING.us_c_inline_h*/
  367. /*No:UNIQUE_STRING.us_element_sizeof*/
  368. /*No:UNIQUE_STRING.us_upper*/
  369. /*No:UNIQUE_STRING.us_native_array*/
  370. void r902add1(T0* a1){
  371. r794put(((T794*)(oBC902memory)),a1,a1);
  372. }
  373. /*No:UNIQUE_STRING.us_pow*/
  374. void r902add2(T0* a1){
  375. /*IF*/if ((((T818*)((T818*)(oBC364eiffel_parser))))->_case_insensitive/*0*/) {
  376. r7to_lower(((T7*)a1));
  377. }
  378. /*FI*/r902add1(a1);
  379. }
  380. T0*oBC902memory=NULL;
  381. /*No:UNIQUE_STRING.us_eof_code*/
  382. /*No:UNIQUE_STRING.us_print_run_time_stack*/
  383. int fBC902initialize=0;
  384. void r902initialize(void){
  385. if (fBC902initialize==0){
  386. fBC902initialize=1;
  387. r902add1(((T0*)ms1_473));
  388. r902add1(((T0*)ms2_473));
  389. r902add1(((T0*)ms3_473));
  390. r902add1(((T0*)ms4_473));
  391. r902add1(((T0*)ms5_473));
  392. r902add1(((T0*)ms6_473));
  393. r902add1(((T0*)ms7_473));
  394. r902add1(((T0*)ms8_473));
  395. r902add1(((T0*)ms9_473));
  396. r902add1(((T0*)ms10_473));
  397. r902add1(((T0*)ms11_473));
  398. r902add1(((T0*)ms12_473));
  399. r902add1(((T0*)ms13_473));
  400. r902add1(((T0*)ms14_473));
  401. r902add1(((T0*)ms15_473));
  402. r902add1(((T0*)ms16_473));
  403. r902add1(((T0*)ms17_473));
  404. r902add1(((T0*)ms18_473));
  405. r902add1(((T0*)ms19_473));
  406. r902add1(((T0*)ms20_473));
  407. r902add1(((T0*)ms21_473));
  408. r902add1(((T0*)ms22_473));
  409. r902add1(((T0*)ms23_473));
  410. r902add1(((T0*)ms24_473));
  411. r902add1(((T0*)ms25_473));
  412. r902add1(((T0*)ms26_473));
  413. r902add1(((T0*)ms27_473));
  414. r902add1(((T0*)ms28_473));
  415. r902add1(((T0*)ms29_473));
  416. r902add1(((T0*)ms30_473));
  417. r902add1(((T0*)ms31_473));
  418. r902add1(((T0*)ms32_473));
  419. r902add1(((T0*)ms33_473));
  420. r902add1(((T0*)ms34_473));
  421. r902add1(((T0*)ms35_473));
  422. r902add1(((T0*)ms36_473));
  423. r902add1(((T0*)ms37_473));
  424. r902add1(((T0*)ms38_473));
  425. r902add1(((T0*)ms39_473));
  426. r902add1(((T0*)ms40_473));
  427. r902add1(((T0*)ms41_473));
  428. r902add1(((T0*)ms42_473));
  429. r902add1(((T0*)ms43_473));
  430. r902add1(((T0*)ms44_473));
  431. r902add1(((T0*)ms45_473));
  432. r902add1(((T0*)ms46_473));
  433. r902add1(((T0*)ms47_473));
  434. r902add1(((T0*)ms48_473));
  435. r902add1(((T0*)ms49_473));
  436. r902add1(((T0*)ms50_473));
  437. r902add1(((T0*)ms51_473));
  438. r902add1(((T0*)ms52_473));
  439. r902add1(((T0*)ms53_473));
  440. r902add1(((T0*)ms54_473));
  441. r902add1(((T0*)ms55_473));
  442. r902add1(((T0*)ms56_473));
  443. r902add1(((T0*)ms57_473));
  444. r902add1(((T0*)ms58_473));
  445. r902add1(((T0*)ms59_473));
  446. r902add1(((T0*)ms60_473));
  447. r902add1(((T0*)ms61_473));
  448. r902add1(((T0*)ms62_473));
  449. r902add1(((T0*)ms63_473));
  450. r902add1(((T0*)ms64_473));
  451. r902add1(((T0*)ms65_473));
  452. r902add1(((T0*)ms66_473));
  453. r902add1(((T0*)ms67_473));
  454. r902add1(((T0*)ms68_473));
  455. r902add1(((T0*)ms69_473));
  456. r902add1(((T0*)ms70_473));
  457. r902add1(((T0*)ms71_473));
  458. r902add1(((T0*)ms72_473));
  459. r902add1(((T0*)ms73_473));
  460. r902add1(((T0*)ms74_473));
  461. r902add1(((T0*)ms75_473));
  462. r902add1(((T0*)ms76_473));
  463. r902add1(((T0*)ms77_473));
  464. r902add1(((T0*)ms78_473));
  465. r902add1(((T0*)ms79_473));
  466. r902add1(((T0*)ms80_473));
  467. r902add1(((T0*)ms81_473));
  468. r902add1(((T0*)ms82_473));
  469. r902add1(((T0*)ms83_473));
  470. r902add1(((T0*)ms84_473));
  471. r902add1(((T0*)ms85_473));
  472. r902add1(((T0*)ms86_473));
  473. r902add1(((T0*)ms87_473));
  474. r902add1(((T0*)ms88_473));
  475. r902add1(((T0*)ms89_473));
  476. r902add2(((T0*)ms90_473));
  477. r902add2(((T0*)ms91_473));
  478. r902add2(((T0*)ms92_473));
  479. r902add2(((T0*)ms93_473));
  480. r902add2(((T0*)ms94_473));
  481. r902add2(((T0*)ms95_473));
  482. r902add2(((T0*)ms96_473));
  483. r902add2(((T0*)ms97_473));
  484. r902add1(((T0*)ms98_473));
  485. r902add1(((T0*)ms99_473));
  486. r902add1(((T0*)ms100_473));
  487. r902add1(((T0*)ms101_473));
  488. r902add1(((T0*)ms102_473));
  489. r902add1(((T0*)ms103_473));
  490. r902add1(((T0*)ms104_473));
  491. r902add1(((T0*)ms105_473));
  492. r902add1(((T0*)ms106_473));
  493. r902add1(((T0*)ms107_473));
  494. r902add1(((T0*)ms108_473));
  495. r902add1(((T0*)ms109_473));
  496. r902add1(((T0*)ms110_473));
  497. r902add1(((T0*)ms111_473));
  498. r902add1(((T0*)ms112_473));
  499. r902add1(((T0*)ms113_473));
  500. r902add1(((T0*)ms114_473));
  501. r902add1(((T0*)ms115_473));
  502. r902add1(((T0*)ms116_473));
  503. r902add1(((T0*)ms117_473));
  504. r902add1(((T0*)ms118_473));
  505. r902add1(((T0*)ms119_473));
  506. r902add1(((T0*)ms120_473));
  507. r902add1(((T0*)ms121_473));
  508. r902add1(((T0*)ms122_473));
  509. r902add1(((T0*)ms123_473));
  510. r902add1(((T0*)ms124_473));
  511. r902add1(((T0*)ms125_473));
  512. r902add1(((T0*)ms126_473));
  513. r902add1(((T0*)ms127_473));
  514. r902add1(((T0*)ms128_473));
  515. r902add1(((T0*)ms129_473));
  516. r902add1(((T0*)ms130_473));
  517. r902add1(((T0*)ms131_473));
  518. r902add1(((T0*)ms132_473));
  519. r902add1(((T0*)ms133_473));
  520. r902add1(((T0*)ms134_473));
  521. r902add1(((T0*)ms135_473));
  522. r902add1(((T0*)ms136_473));
  523. r902add1(((T0*)ms137_473));
  524. r902add1(((T0*)ms138_473));
  525. r902add1(((T0*)ms139_473));
  526. r902add1(((T0*)ms140_473));
  527. r902add1(((T0*)ms141_473));
  528. r902add1(((T0*)ms142_473));
  529. r902add1(((T0*)ms143_473));
  530. r902add1(((T0*)ms144_473));
  531. r902add1(((T0*)ms145_473));
  532. r902add1(((T0*)ms146_473));
  533. r902add1(((T0*)ms147_473));
  534. }}
  535. /*No:UNIQUE_STRING.us_malloc*/
  536. /*No:UNIQUE_STRING.us_fixed_array*/
  537. /*No:UNIQUE_STRING.us_std_input*/
  538. /*No:UNIQUE_STRING.us_lt*/
  539. /*No:UNIQUE_STRING.us_minimum_double*/
  540. /*No:UNIQUE_STRING.us_se_argv*/
  541. /*No:UNIQUE_STRING.us_any*/
  542. /*No:UNIQUE_STRING.us_or*/
  543. /*No:UNIQUE_STRING.us_general*/
  544. /*No:UNIQUE_STRING.us_maximum_double*/
  545. /*No:UNIQUE_STRING.us_to_real*/
  546. /*No:SMALL_EIFFEL.dos_system*/
  547. T0*oBC364cecil_pool=NULL;
  548. /*No:SMALL_EIFFEL.fz_system_se*/
  549. /*No:SMALL_EIFFEL.fz_sys*/
  550. T0*oBC364gc_handler=NULL;
  551. /*No:SMALL_EIFFEL.falling_down*/
  552. T0* r604get_started(T604* C,T0* a1,T0* a2){
  553. T0* R=NULL;
  554. int _magic=0;
  555. T0* _root_type=NULL;
  556. T0* _root_proc=NULL;
  557. T0* _root=NULL;
  558. T0* _root_proc_name=NULL;
  559. T0* _root_name=NULL;
  560. r306put_string(((T306*)(oBC364echo)),((T0*)ms1_604));
  561. r306put_string(((T306*)(oBC364echo)),((T0*)ms28_604));
  562. _root=r604load_class(C,a1);
  563. /*IF*/if ((_root)==((void*)(NULL))) {
  564. /*[IRF3.6append*/{T0* b1=((T0*)ms29_604);
  565. r7append(((T7*)(oBC683explanation)),b1);
  566. }/*]*/
  567. /*[IRF3.6append*/{T0* b1=a1;
  568. r7append(((T7*)(oBC683explanation)),b1);
  569. }/*]*/
  570. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  571. }
  572. else {
  573. _root_name=(((T605*)((T605*)_root)))->_base_class_name/*24*/;
  574. {T446*n=malloc(sizeof(*n));
  575. *n=M446;
  576. r446make(n,a2,NULL);
  577. _root_proc_name=(T0*)n;
  578. }
  579. _root_proc=r605root_procedure(((T605*)_root),a2);
  580. }
  581. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  582. /*IF*/if (((((T297*)((T297*)_root_proc)))->_arguments/*28*/)!=((void*)(NULL))) {
  583. r683add_position(r297start_position(((T297*)_root_proc)));
  584. /*[IRF3.6append*/{T0* b1=((T0*)ms30_604);
  585. r7append(((T7*)(oBC683explanation)),b1);
  586. }/*]*/
  587. /*[IRF3.6append*/{T0* b1=a2;
  588. r7append(((T7*)(oBC683explanation)),b1);
  589. }/*]*/
  590. r683error(((T683*)(oBC364eh)),((T0*)ms31_604));
  591. }
  592. /*FI*/}
  593. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  594. _root_type=(((T355*)((T355*)(r605run_class(((T605*)_root))))))->_current_type/*0*/;
  595. }
  596. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  597. R=r297to_run_feature(((T297*)_root_proc),_root_type,_root_proc_name);
  598. /*IF*/if ((((T548*)((T548*)(oBC364gc_handler))))->_is_on/*0*/) {
  599. /*[IRF3.3do_not_inline*/((((T832*)(((T832*)R))))->_in_line_status)=(-(1));
  600. /*]*/
  601. }
  602. /*FI*/}
  603. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  604. r306put_string(((T306*)(oBC364echo)),((T0*)ms32_604));
  605. r306put_integer(((T306*)(oBC364echo)),(((T604*)C))->_magic_count/*8*/);
  606. r306put_string(((T306*)(oBC364echo)),((T0*)ms61_604));
  607. /*[IRF3.2falling_down*/{int _i=0;
  608. T0* _rc=NULL;
  609. /*[IRF3.2falling_down*/{int _count2=0;
  610. int _count1=0;
  611. T0* _dictionary2=NULL;
  612. /*IF*/if (!(/*(IRF4.7empty*/((((T338*)((T338*)(oBC576dictionary))))->_count/*40*/)==(0)/*)*/)) {
  613. _count1=1;
  614. while (!((_count1)>((((T338*)((T338*)(oBC576dictionary))))->_count/*40*/))) {
  615. _dictionary2=r338item(((T338*)(oBC576dictionary)),_count1);
  616. _count2=1;
  617. while (!((_count2)>((((T199*)((T199*)_dictionary2)))->_count/*40*/))) {
  618. X496fall_down(r199item(((T199*)_dictionary2),_count2));
  619. _count2=(_count2)+(1);
  620. }
  621. _count1=(_count1)+(1);
  622. }
  623. }
  624. /*FI*/}/*]*/
  625. _i=1;
  626. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  627. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  628. r355falling_down(((T355*)_rc));
  629. _i=(_i)+(1);
  630. }
  631. }/*]*/
  632. r625fill_up(((T625*)(oBC364cecil_pool)));
  633. while (!(((_magic)==((((T604*)C))->_magic_count/*8*/))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  634. _magic=(((T604*)C))->_magic_count/*8*/;
  635. /*[IRF3.2falling_down*/{int _i=0;
  636. T0* _rc=NULL;
  637. /*[IRF3.2falling_down*/{int _count2=0;
  638. int _count1=0;
  639. T0* _dictionary2=NULL;
  640. /*IF*/if (!(/*(IRF4.7empty*/((((T338*)((T338*)(oBC576dictionary))))->_count/*40*/)==(0)/*)*/)) {
  641. _count1=1;
  642. while (!((_count1)>((((T338*)((T338*)(oBC576dictionary))))->_count/*40*/))) {
  643. _dictionary2=r338item(((T338*)(oBC576dictionary)),_count1);
  644. _count2=1;
  645. while (!((_count2)>((((T199*)((T199*)_dictionary2)))->_count/*40*/))) {
  646. X496fall_down(r199item(((T199*)_dictionary2),_count2));
  647. _count2=(_count2)+(1);
  648. }
  649. _count1=(_count1)+(1);
  650. }
  651. }
  652. /*FI*/}/*]*/
  653. _i=1;
  654. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  655. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  656. r355falling_down(((T355*)_rc));
  657. _i=(_i)+(1);
  658. }
  659. }/*]*/
  660. }
  661. r306put_string(((T306*)(oBC364echo)),((T0*)ms33_604));
  662. r306put_integer(((T306*)(oBC364echo)),(((T604*)C))->_magic_count/*8*/);
  663. r306put_string(((T306*)(oBC364echo)),((T0*)ms61_604));
  664. }
  665. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  666. r306put_string(((T306*)(oBC364echo)),((T0*)ms34_604));
  667. r306put_integer(((T306*)(oBC364echo)),(((T604*)C))->_magic_count/*8*/);
  668. r306put_string(((T306*)(oBC364echo)),((T0*)ms61_604));
  669. /*[IRF3.2afd_check*/{int _i=0;
  670. T0* _rc=NULL;
  671. _i=1;
  672. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  673. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  674. r355afd_check(((T355*)_rc));
  675. _i=(_i)+(1);
  676. }
  677. }/*]*/
  678. while (!(((_magic)==((((T604*)C))->_magic_count/*8*/))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  679. _magic=(((T604*)C))->_magic_count/*8*/;
  680. /*[IRF3.2falling_down*/{int _i=0;
  681. T0* _rc=NULL;
  682. /*[IRF3.2falling_down*/{int _count2=0;
  683. int _count1=0;
  684. T0* _dictionary2=NULL;
  685. /*IF*/if (!(/*(IRF4.7empty*/((((T338*)((T338*)(oBC576dictionary))))->_count/*40*/)==(0)/*)*/)) {
  686. _count1=1;
  687. while (!((_count1)>((((T338*)((T338*)(oBC576dictionary))))->_count/*40*/))) {
  688. _dictionary2=r338item(((T338*)(oBC576dictionary)),_count1);
  689. _count2=1;
  690. while (!((_count2)>((((T199*)((T199*)_dictionary2)))->_count/*40*/))) {
  691. X496fall_down(r199item(((T199*)_dictionary2),_count2));
  692. _count2=(_count2)+(1);
  693. }
  694. _count1=(_count1)+(1);
  695. }
  696. }
  697. /*FI*/}/*]*/
  698. _i=1;
  699. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  700. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  701. r355falling_down(((T355*)_rc));
  702. _i=(_i)+(1);
  703. }
  704. }/*]*/
  705. /*[IRF3.2afd_check*/{int _i=0;
  706. T0* _rc=NULL;
  707. _i=1;
  708. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  709. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  710. r355afd_check(((T355*)_rc));
  711. _i=(_i)+(1);
  712. }
  713. }/*]*/
  714. }
  715. r306put_string(((T306*)(oBC364echo)),((T0*)ms35_604));
  716. r306put_integer(((T306*)(oBC364echo)),(((T604*)C))->_magic_count/*8*/);
  717. r306put_string(((T306*)(oBC364echo)),((T0*)ms61_604));
  718. /*[IRF3.2check_for_deferred*/{T0* _rc=NULL;
  719. T0* _rf9=NULL;
  720. int _i=0;
  721. _i=/*X308*/((int)(((T308*)((T308*)(oBC604rf9_memory))))->_upper/*12*/);
  722. r306print_count(((T306*)(oBC364echo)),((T0*)ms38_604),(_i)+(1));
  723. while (!((_i)<(0))) {
  724. _rf9=/*X308*/((T0*)r308item(((T308*)(oBC604rf9_memory)),_i));
  725. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf9)))->_current_type/*4*/));
  726. /*IF*/if ((((T355*)((T355*)_rc)))->_at_run_time/*8*/) {
  727. r683add_position(X496start_position(_rf9));
  728. /*[IRF3.6append*/{T0* b1=X776to_string(/*X496*/((T0*)(((T832*)((T832*)_rf9)))->_name/*16*/));
  729. r7append(((T7*)(oBC683explanation)),b1);
  730. }/*]*/
  731. /*[IRF3.6append*/{T0* b1=((T0*)ms39_604);
  732. r7append(((T7*)(oBC683explanation)),b1);
  733. }/*]*/
  734. /*[IRF3.6append*/{T0* b1=X291written_mark(/*X496*/((T0*)(((T832*)((T832*)_rf9)))->_current_type/*4*/));
  735. r7append(((T7*)(oBC683explanation)),b1);
  736. }/*]*/
  737. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms67_470);
  738. r683fatal_error(((T683*)(oBC364eh)),b1);
  739. }/*]*/
  740. }
  741. /*FI*/_i=(_i)-(1);
  742. }
  743. }/*]*/
  744. }
  745. /*FI*//*IF*/if (!(r683empty())) {
  746. /*[IRF3.6append*/{T0* b1=((T0*)ms36_604);
  747. r7append(((T7*)(oBC683explanation)),b1);
  748. }/*]*/
  749. r683print_as_warning(((T683*)(oBC364eh)));
  750. }
  751. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  752. C->_is_ready=1;
  753. r306print_count(((T306*)(oBC364echo)),((T0*)ms37_604),(((T718*)((T718*)(oBC604base_class_dictionary))))->_count/*32*/);
  754. }
  755. /*FI*/return R;
  756. }
  757. int fBC604loading_path=0;
  758. T0*oBC604loading_path=NULL;
  759. T0* r604loading_path(T604* C){
  760. if (fBC604loading_path==0){
  761. T0* R=NULL;
  762. T0* _file=NULL;
  763. T0* _path=NULL;
  764. fBC604loading_path=1;
  765. {T52*n=malloc(sizeof(*n));
  766. *n=M52;
  767. r52make(n,1,10);
  768. R=(T0*)n;
  769. }
  770. r52clear(((T52*)R));
  771. {T675*n=malloc(sizeof(*n));
  772. *n=M675;
  773. r675connect_to(n,((T0*)ms2_604));
  774. _file=(T0*)n;
  775. }
  776. /*IF*/if (/*(IRF4.7is_connected*/((((T675*)((T675*)_file)))->_path/*4*/)!=(NULL)/*)*/) {
  777. while (!(r675end_of_input(((T675*)_file)))) {
  778. r675read_line(((T675*)_file));
  779. r52add_last(((T52*)R),r7twin(((T7*)(oBC762last_string))));
  780. }
  781. r675disconnect(((T675*)_file));
  782. }
  783. /*FI*/_path=r7twin(((T7*)(r604small_eiffel_directory(C))));
  784. r604add_directory(C,_path,((T0*)ms126_470));
  785. r7append(((T7*)_path),((T0*)ms3_604));
  786. r7append(((T7*)_path),r604system_name(C));
  787. r675connect_to(((T675*)_file),_path);
  788. /*IF*/if (/*(IRF4.7is_connected*/((((T675*)((T675*)_file)))->_path/*4*/)!=(NULL)/*)*/) {
  789. while (!(r675end_of_input(((T675*)_file)))) {
  790. r675read_line(((T675*)_file));
  791. r52add_last(((T52*)R),r7twin(((T7*)(oBC762last_string))));
  792. }
  793. r675disconnect(((T675*)_file));
  794. }
  795. else {
  796. r306w_put_string(((T0*)ms4_604));
  797. r306w_put_string(_path);
  798. r306w_put_string(((T0*)ms5_604));
  799. }
  800. /*FI*/oBC604loading_path=R;}
  801. return oBC604loading_path;}
  802. /*No:SMALL_EIFFEL.unix_system*/
  803. /*No:SMALL_EIFFEL.exit_failure_code*/
  804. /*No:SMALL_EIFFEL.vms_system*/
  805. T0*oBC604run_class_dictionary=NULL;
  806. T0* r604small_eiffel_directory(T604* C){
  807. if (fBC364small_eiffel_directory==0){
  808. T0* R=NULL;
  809. char _slash=0;
  810. int _i=0;
  811. fBC364small_eiffel_directory=1;
  812. R=r604get_environment_variable(C,((T0*)ms121_470));
  813. /*IF*/if ((R)==((void*)(NULL))) {
  814. R=r7twin(((T7*)(((T0*)ms121_470))));
  815. r7to_upper(((T7*)R));
  816. R=r604get_environment_variable(C,R);
  817. /*IF*/if ((R)!=((void*)(NULL))) {
  818. r7to_upper(((T7*)(((T0*)ms121_470))));
  819. }
  820. /*FI*/}
  821. /*FI*//*IF*/if ((R)==((void*)(NULL))) {
  822. R=((T0*)ms1_364);
  823. }
  824. /*FI*/_i=(((T7*)((T7*)R)))->_count/*4*/;
  825. while (!((_i)<(0))) {
  826. _slash=/*(IRF4.6item*/((((T7*)((T7*)R)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  827. /*IF*/if ((r3is_letter(_slash))||(r3is_digit(_slash))) {
  828. _i=(_i)-(1);
  829. }
  830. else {
  831. _i=-(1);
  832. }
  833. /*FI*/}
  834. /*IF*/if ((_i)==(0)) {
  835. r7extend(((T7*)R),'\57');
  836. }
  837.  else if (!((r7last(((T7*)R)))==(_slash))) {
  838. r7extend(((T7*)R),_slash);
  839. }
  840. /*FI*/oBC364small_eiffel_directory=R;}
  841. return oBC364small_eiffel_directory;}
  842. T0*oBC604stack_rf=NULL;
  843. /*No:SMALL_EIFFEL.amiga_system*/
  844. void r604afd_check_deferred(T0* a1){
  845. /*IF*/if (!(X308fast_has(oBC604rf9_memory,a1))) {
  846. X308add_last(oBC604rf9_memory,a1);
  847. }
  848. /*FI*/}
  849. /*No:SMALL_EIFFEL.make*/
  850. /*No:SMALL_EIFFEL.last_unique*/
  851. /*No:SMALL_EIFFEL.nb_errors*/
  852. T0*oBC604tmp_tail=NULL;
  853. int fBC604tmp_class_name=0;
  854. T0*oBC604tmp_class_name=NULL;
  855. T0* r604tmp_class_name(void){
  856. if (fBC604tmp_class_name==0){
  857. T0* R=NULL;
  858. fBC604tmp_class_name=1;
  859. {T451*n=malloc(sizeof(*n));
  860. *n=M451;
  861. r451make(n,((T0*)ms1_473),NULL);
  862. R=(T0*)n;
  863. }
  864. oBC604tmp_class_name=R;}
  865. return oBC604tmp_class_name;}
  866. /*No:SMALL_EIFFEL.check_for_deferred*/
  867. T0*oBC364parser_buffer=NULL;
  868. void r604add_class(T604* C,T0* a1){
  869. r718put(((T718*)(oBC604base_class_dictionary)),a1,(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_to_string/*0*/);
  870. r604incr_magic_count(C);
  871. }
  872. void r604push(T604* C,T0* a1){
  873. C->_top=((((T604*)C))->_top/*12*/)+(1);
  874. X477force(oBC604stack_rf,a1,(((T604*)C))->_top/*12*/);
  875. }
  876. int r604next_unique(T604* C){
  877. int R=0;
  878. /*IF*/if (((((T604*)C))->_last_unique/*16*/)<(1000)) {
  879. C->_last_unique=1000;
  880. }
  881. /*FI*/C->_last_unique=((((T604*)C))->_last_unique/*16*/)+(1);
  882. R=(((T604*)C))->_last_unique/*16*/;
  883. return R;
  884. }
  885. T0* r604top_rf(T604* C){
  886. T0* R=NULL;
  887. R=/*X477*/((T0*)r477item(((T477*)(oBC604stack_rf)),(((T604*)C))->_top/*12*/));
  888. return R;
  889. }
  890. /*No:SMALL_EIFFEL.copyright*/
  891. void r604add_directory(T604* C,T0* a1,T0* a2){
  892. /*IF*/if ((((T0*)ms17_364))==((void*)(r604system_name(C)))) {
  893. r7set_last(((T7*)a1),'\57');
  894. r7append(((T7*)a1),a2);
  895. r7set_last(((T7*)a1),'\57');
  896. }
  897.  else if ((((T0*)ms19_364))==((void*)(r604system_name(C)))) {
  898. r7set_last(((T7*)a1),'\134');
  899. r7append(((T7*)a1),a2);
  900. r7set_last(((T7*)a1),'\134');
  901. }
  902.  else if ((((T0*)ms15_364))==((void*)(r604system_name(C)))) {
  903. r7set_last(((T7*)a1),'\72');
  904. r7append(((T7*)a1),a2);
  905. r7set_last(((T7*)a1),'\72');
  906. }
  907.  else if ((((T0*)ms14_364))==((void*)(r604system_name(C)))) {
  908. r7set_last(((T7*)a1),'\134');
  909. r7append(((T7*)a1),a2);
  910. r7set_last(((T7*)a1),'\134');
  911. }
  912.  else if ((((T0*)ms16_364))==((void*)(r604system_name(C)))) {
  913. r7set_last(((T7*)a1),'\134');
  914. r7append(((T7*)a1),a2);
  915. r7set_last(((T7*)a1),'\134');
  916. }
  917.  else if ((((T0*)ms13_364))==((void*)(r604system_name(C)))) {
  918. r7set_last(((T7*)a1),'\57');
  919. r7append(((T7*)a1),a2);
  920. r7set_last(((T7*)a1),'\57');
  921. }
  922.  else if ((((T0*)ms18_364))==((void*)(r604system_name(C)))) {
  923. r7set_last(((T7*)a1),'\135');
  924. r7remove_last(((T7*)a1),1);
  925. r7set_last(((T7*)a1),'\56');
  926. r7append(((T7*)a1),a2);
  927. r7set_last(((T7*)a1),'\135');
  928. }
  929. /*FI*/}
  930. T0*oBC604parser_buffer_path=NULL;
  931. /*No:SMALL_EIFFEL.windows_system*/
  932. T0* r604get_environment_variable(T604* C,T0* a1){
  933. T0* R=NULL;
  934. void* _p=0;
  935. _p=r7to_external(((T7*)a1));
  936. R=(NULL==(_p=getenv((char*)_p)))?NULL:((T0*)e2s((char*)_p));
  937. return R;
  938. }
  939. /*No:SMALL_EIFFEL.short_flag*/
  940. /*No:SMALL_EIFFEL.fz_03*/
  941. T0* r604get_class(T0* a1){
  942. T0* R=NULL;
  943. /*IF*/if (r718has(((T718*)(oBC604base_class_dictionary)),a1)) {
  944. R=r718at(((T718*)(oBC604base_class_dictionary)),a1);
  945. }
  946. else {
  947. r451make(((T451*)(r604tmp_class_name())),a1,NULL);
  948. R=r451base_class(((T451*)(r604tmp_class_name())));
  949. }
  950. /*FI*/return R;
  951. }
  952. T0* r604system_name(T604* C){
  953. if (fBC364system_name==0){
  954. T0* R=NULL;
  955. int _i=0;
  956. fBC364system_name=1;
  957. r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C));
  958. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\57')) {
  959. r7set_last(((T7*)(oBC364tmp_path)),'\57');
  960. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  961. r7extend(((T7*)(oBC364tmp_path)),'\57');
  962. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  963. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  964. }
  965. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  966. r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C));
  967. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\134')) {
  968. r7set_last(((T7*)(oBC364tmp_path)),'\134');
  969. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  970. r7extend(((T7*)(oBC364tmp_path)),'\134');
  971. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  972. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  973. }
  974. /*FI*/}
  975. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  976. r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C));
  977. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\72')) {
  978. r7set_last(((T7*)(oBC364tmp_path)),'\72');
  979. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  980. r7extend(((T7*)(oBC364tmp_path)),'\72');
  981. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  982. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  983. }
  984. /*FI*/}
  985. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  986. r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C));
  987. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\135')) {
  988. r7set_last(((T7*)(oBC364tmp_path)),'\135');
  989. r7remove_last(((T7*)(oBC364tmp_path)),1);
  990. r7extend(((T7*)(oBC364tmp_path)),'\56');
  991. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  992. r7extend(((T7*)(oBC364tmp_path)),'\135');
  993. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  994. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  995. }
  996. /*FI*/}
  997. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  998. r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C));
  999. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1000. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1001. }
  1002. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1003. r306w_put_string(((T0*)ms20_364));
  1004. r306w_put_string(((T0*)ms127_470));
  1005. r306w_put_string(((T0*)ms21_364));
  1006. r306w_put_string(r604small_eiffel_directory(C));
  1007. r306w_put_string(((T0*)ms242_470));
  1008. exit(1);
  1009. }
  1010. /*FI*/r675read_line(((T675*)(oBC364tmp_file_read)));
  1011. R=oBC762last_string;
  1012. _i=r52index_of(((T52*)(oBC364system_list)),R);
  1013. r675disconnect(((T675*)(oBC364tmp_file_read)));
  1014. /*IF*/if ((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/)) {
  1015. r306w_put_string(((T0*)ms22_364));
  1016. r306w_put_string(oBC364tmp_path);
  1017. r306w_put_string(((T0*)ms23_364));
  1018. _i=1;
  1019. while (!((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/))) {
  1020. r306w_put_string(r52item(((T52*)(oBC364system_list)),_i));
  1021. r306w_put_character('\n');
  1022. _i=(_i)+(1);
  1023. }
  1024. }
  1025. else {
  1026. R=r52item(((T52*)(oBC364system_list)),_i);
  1027. r306put_string(((T306*)(oBC364echo)),((T0*)ms24_364));
  1028. r306put_string(((T306*)(oBC364echo)),R);
  1029. r306put_string(((T306*)(oBC364echo)),((T0*)ms242_470));
  1030. }
  1031. /*FI*/oBC364system_name=R;}
  1032. return oBC364system_name;}
  1033. int r604parser_buffer_for(T604* C,T0* a1){
  1034. int R=0;
  1035. int _i=0;
  1036. r7copy(((T7*)(oBC604tmp_tail)),a1);
  1037. r7to_lower(((T7*)(oBC604tmp_tail)));
  1038. /*IF*/if (!(r7has_suffix(((T7*)(oBC604tmp_tail)),((T0*)ms25_364)))) {
  1039. r7append(((T7*)(oBC604tmp_tail)),((T0*)ms25_364));
  1040. }
  1041. /*FI*/_i=(((T52*)((T52*)(r604loading_path(C)))))->_lower/*12*/;
  1042. while (!(((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))||(R))) {
  1043. r7copy(((T7*)(oBC604parser_buffer_path)),r52item(((T52*)(r604loading_path(C))),_i));
  1044. r7append(((T7*)(oBC604parser_buffer_path)),oBC604tmp_tail);
  1045. r676load_file(((T676*)(oBC364parser_buffer)),oBC604parser_buffer_path);
  1046. R=/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/;
  1047. _i=(_i)+(1);
  1048. }
  1049. /*IF*/if ((!(R))&&(r794has(((T794*)(r604rename_dictionary(C))),oBC604tmp_tail))) {
  1050. r7copy(((T7*)(oBC604parser_buffer_path)),r794at(((T794*)(r604rename_dictionary(C))),oBC604tmp_tail));
  1051. r676load_file(((T676*)(oBC364parser_buffer)),oBC604parser_buffer_path);
  1052. /*IF*/if (/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/) {
  1053. R=1;
  1054. }
  1055. else {
  1056. r306w_put_string(((T0*)ms10_604));
  1057. r306w_put_string(oBC604parser_buffer_path);
  1058. r306w_put_string(((T0*)ms137_470));
  1059. exit(1);
  1060. }
  1061. /*FI*/}
  1062. /*FI*//*IF*/if (!(R)) {
  1063. r7copy(((T7*)(oBC604tmp_tail)),a1);
  1064. /*IF*/if (!(r7has_suffix(((T7*)(oBC604tmp_tail)),((T0*)ms25_364)))) {
  1065. r7append(((T7*)(oBC604tmp_tail)),((T0*)ms25_364));
  1066. }
  1067. /*FI*/_i=(((T52*)((T52*)(r604loading_path(C)))))->_lower/*12*/;
  1068. while (!(((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))||(R))) {
  1069. r7copy(((T7*)(oBC604parser_buffer_path)),r52item(((T52*)(r604loading_path(C))),_i));
  1070. r7append(((T7*)(oBC604parser_buffer_path)),oBC604tmp_tail);
  1071. r676load_file(((T676*)(oBC364parser_buffer)),oBC604parser_buffer_path);
  1072. R=/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/;
  1073. _i=(_i)+(1);
  1074. }
  1075. }
  1076. /*FI*//*IF*/if (!(R)) {
  1077. r306w_put_string(((T0*)ms11_604));
  1078. r306w_put_string(a1);
  1079. r306w_put_string(((T0*)ms12_604));
  1080. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC604parser_buffer_path)))))->_count)=(0);
  1081. /*]*/
  1082. r604append_loading_path_in(C,oBC604parser_buffer_path);
  1083. r306w_put_string(oBC604parser_buffer_path);
  1084. }
  1085. /*FI*/return R;
  1086. }
  1087. /*No:SMALL_EIFFEL.fz_b0*/
  1088. /*No:SMALL_EIFFEL.em1*/
  1089. /*No:SMALL_EIFFEL.is_ready*/
  1090. /*No:SMALL_EIFFEL.base_class_count*/
  1091. /*No:SMALL_EIFFEL.fz_se*/
  1092. /*No:SMALL_EIFFEL.os2_system*/
  1093. void r604pop(T604* C){
  1094. C->_top=((((T604*)C))->_top/*12*/)-(1);
  1095. }
  1096. int fBC604rename_dictionary=0;
  1097. T0*oBC604rename_dictionary=NULL;
  1098. T0* r604rename_dictionary(T604* C){
  1099. if (fBC604rename_dictionary==0){
  1100. T0* R=NULL;
  1101. T0* _short_name=NULL;
  1102. T0* _full_name=NULL;
  1103. int _i=0;
  1104. fBC604rename_dictionary=1;
  1105. {T794*n=malloc(sizeof(*n));
  1106. *n=M794;
  1107. r794make(n);
  1108. R=(T0*)n;
  1109. }
  1110. _i=1;
  1111. while (!((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))) {
  1112. r7copy(((T7*)(oBC364tmp_path)),r52item(((T52*)(r604loading_path(C))),_i));
  1113. r7append(((T7*)(oBC364tmp_path)),((T0*)ms13_604));
  1114. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1115. /*IF*/if (/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/) {
  1116. while (!(r675end_of_input(((T675*)(oBC364tmp_file_read))))) {
  1117. r675read_word(((T675*)(oBC364tmp_file_read)));
  1118. _full_name=r7twin(((T7*)(oBC762last_string)));
  1119. r675read_word(((T675*)(oBC364tmp_file_read)));
  1120. _short_name=r7twin(((T7*)(oBC762last_string)));
  1121. r7prepend(((T7*)_short_name),r52item(((T52*)(r604loading_path(C))),_i));
  1122. /*IF*/if (r794has(((T794*)R),_full_name)) {
  1123. r306w_put_string(((T0*)ms14_604));
  1124. r306w_put_string(_full_name);
  1125. r306w_put_string(((T0*)ms15_604));
  1126. r306w_put_string(_short_name);
  1127. r306w_put_string(((T0*)ms16_604));
  1128. r306w_put_string(r794at(((T794*)R),_full_name));
  1129. r306w_put_string(((T0*)ms17_604));
  1130. exit(1);
  1131. }
  1132. /*FI*/r794put(((T794*)R),_short_name,_full_name);
  1133. r675skip_separators(((T675*)(oBC364tmp_file_read)));
  1134. }
  1135. r675disconnect(((T675*)(oBC364tmp_file_read)));
  1136. }
  1137. /*FI*/_i=(_i)+(1);
  1138. }
  1139. oBC604rename_dictionary=R;}
  1140. return oBC604rename_dictionary;}
  1141. T0* r604run_class(T0* a1){
  1142. T0* R=NULL;
  1143. T0* _run_string=NULL;
  1144. _run_string=X291run_time_mark(a1);
  1145. /*IF*/if (r250has(((T250*)(oBC604run_class_dictionary)),_run_string)) {
  1146. R=r250at(((T250*)(oBC604run_class_dictionary)),_run_string);
  1147. }
  1148. else {
  1149. {T355*n=malloc(sizeof(*n));
  1150. *n=M355;
  1151. r355make(n,a1);
  1152. R=(T0*)n;
  1153. }
  1154. }
  1155. /*FI*/return R;
  1156. }
  1157. void r604append_loading_path_in(T604* C,T0* a1){
  1158. T0* _sed=NULL;
  1159. int _i=0;
  1160. r7append(((T7*)a1),((T0*)ms62_604));
  1161. _i=(((T52*)((T52*)(r604loading_path(C)))))->_lower/*12*/;
  1162. while (!((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))) {
  1163. r7extend(((T7*)a1),'\42');
  1164. r7append(((T7*)a1),r52item(((T52*)(r604loading_path(C))),_i));
  1165. r7extend(((T7*)a1),'\42');
  1166. r7extend(((T7*)a1),'\n');
  1167. _i=(_i)+(1);
  1168. }
  1169. r7append(((T7*)a1),((T0*)ms63_604));
  1170. r7append(((T7*)a1),((T0*)ms121_470));
  1171. _sed=r604get_environment_variable(C,((T0*)ms121_470));
  1172. r7append(((T7*)a1),((T0*)ms64_604));
  1173. /*IF*/if ((_sed)==((void*)(NULL))) {
  1174. r7append(((T7*)a1),((T0*)ms65_604));
  1175. }
  1176. else {
  1177. r7append(((T7*)a1),((T0*)ms66_604));
  1178. r7append(((T7*)a1),_sed);
  1179. r7append(((T7*)a1),((T0*)ms67_604));
  1180. }
  1181. /*FI*/r7extend(((T7*)a1),'\n');
  1182. }
  1183. /*No:SMALL_EIFFEL.top*/
  1184. T0*oBC604rf9_memory=NULL;
  1185. int r604is_used(T0* a1){
  1186. int R=0;
  1187. R=r718has(((T718*)(oBC604base_class_dictionary)),a1);
  1188. return R;
  1189. }
  1190. /*No:SMALL_EIFFEL.macintosh_system*/
  1191. /*No:SMALL_EIFFEL.fz_dot*/
  1192. void r604compile_to_jvm(T604* C,T0* a1,T0* a2){
  1193. int _i=0;
  1194. int _run_count=0;
  1195. T0* _rc=NULL;
  1196. T0* _rf3=NULL;
  1197. _rf3=r604get_started(C,a1,a2);
  1198. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1199. r228mkdir(((T228*)(oBC364jvm)),_rf3);
  1200. _i=1;
  1201. while (!((_i)>((((T250*)((T250*)(oBC604run_class_dictionary))))->_count/*40*/))) {
  1202. _rc=r250item(((T250*)(oBC604run_class_dictionary)),_i);
  1203. /*IF*/if ((((T355*)((T355*)_rc)))->_at_run_time/*8*/) {
  1204. _run_count=(_run_count)+(1);
  1205. r355compile_to_jvm(((T355*)_rc));
  1206. }
  1207. /*FI*/_i=(_i)+(1);
  1208. }
  1209. r306print_count(((T306*)(oBC364echo)),((T0*)ms26_604),_run_count);
  1210. r228write_jvm_root_class(((T228*)(oBC364jvm)));
  1211. r228write_main_class(((T228*)(oBC364jvm)),_rf3);
  1212. }
  1213. else {
  1214. r683error(((T683*)(oBC364eh)),((T0*)ms27_604));
  1215. }
  1216. /*FI*/}
  1217. void r604incr_magic_count(T604* C){
  1218. C->_magic_count=((((T604*)C))->_magic_count/*8*/)+(1);
  1219. }
  1220. /*No:SMALL_EIFFEL.magic_count*/
  1221. /*No:SMALL_EIFFEL.eiffel_suffix*/
  1222. T0* r604base_class(T604* C,T0* a1){
  1223. T0* R=NULL;
  1224. /*IF*/if (r718has(((T718*)(oBC604base_class_dictionary)),(((T451*)((T451*)a1)))->_to_string/*0*/)) {
  1225. R=r718at(((T718*)(oBC604base_class_dictionary)),(((T451*)((T451*)a1)))->_to_string/*0*/);
  1226. }
  1227.  else if ((((T818*)((T818*)(oBC364eiffel_parser))))->_is_running/*8*/) {
  1228. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms6_604);
  1229. r683fatal_error(((T683*)(oBC364eh)),b1);
  1230. }/*]*/
  1231. }
  1232. else {
  1233. /*IF*/if (r604parser_buffer_for(C,(((T451*)((T451*)a1)))->_to_string/*0*/)) {
  1234. R=r818analyse_class(((T818*)(oBC364eiffel_parser)),a1);
  1235. }
  1236. /*FI*//*IF*/if ((R)==((void*)(NULL))) {
  1237. r683add_position((((T451*)((T451*)a1)))->_start_position/*4*/);
  1238. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms7_604);
  1239. r683fatal_error(((T683*)(oBC364eh)),b1);
  1240. }/*]*/
  1241. }
  1242. /*FI*/}
  1243. /*FI*/return R;
  1244. }
  1245. /*No:SMALL_EIFFEL.fatal_error*/
  1246. T0* r604load_class(T604* C,T0* a1){
  1247. T0* R=NULL;
  1248. /*IF*/if (r604parser_buffer_for(C,a1)) {
  1249. R=r818analyse_class(((T818*)(oBC364eiffel_parser)),NULL);
  1250. /*IF*/if ((R)==((void*)(NULL))) {
  1251. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_604);
  1252. r683fatal_error(((T683*)(oBC364eh)),b1);
  1253. }/*]*/
  1254. }
  1255. /*FI*/}
  1256. else {
  1257. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms9_604);
  1258. r683fatal_error(((T683*)(oBC364eh)),b1);
  1259. }/*]*/
  1260. }
  1261. /*FI*/return R;
  1262. }
  1263. /*No:SMALL_EIFFEL.afd_check*/
  1264. /*No:SMALL_EIFFEL.us_any*/
  1265. T0*oBC604base_class_dictionary=NULL;
  1266.  
  1267.